package com.example.dnm.resp;




import java.util.HashMap;
import java.util.Map;


/**
 * json结果工具类<br>
 * 用于控制器返回json使用<br>
 * spring mvc的@ResponseBody自动将Map 转为json<br>
 * json格式符合javashop规范：<br>
 * {"result":1,"message":""}或<br>
 * {"result":1,"data":""}或<br>
 * 适用于grid的： {"total":1,"rows":""}<br>
 * 
 */
public class JsonResultUtil {

	/**
	 * 获取对象json Map
	 * 
	 * @param object
	 *            要生成json格式的对象
	 * @return 符合javashop规范的json map: {"result":1,"data":""}
	 */
	public static com.example.dnm.resp.JsonResult getObjectJson(Object object) {

		com.example.dnm.resp.JsonResult result = new com.example.dnm.resp.JsonResult();
		result.setData(object);

		return result;

	}

	/**
	 * 获取对象json Map
	 * 
	 * @param object
	 *            要生成json格式的对象
	 * @objectName object的key名称
	 * @return 符合javashop规范的json map: {"result":1,"data":""}
	 */
	public static com.example.dnm.resp.JsonResult getObjectJson(Object object, String objectName) {
		Map<String, Object> map = new HashMap<String, Object>();
		map.put(objectName, object);
		com.example.dnm.resp.JsonResult result = new com.example.dnm.resp.JsonResult();
		result.setData(map);

		return result;

	}

	/**
	 * 获得对象json Integer
	 * 
	 * @param name
	 *            数值key名
	 * @param num
	 *            值
	 * @return 符合javashop规范的json map: {"result":1,"data":""}
	 */
	public static com.example.dnm.resp.JsonResult getNumberJson(String name, int num) {

		Map<String, Integer> map = new HashMap<String, Integer>();
		map.put(name, num);

		com.example.dnm.resp.JsonResult result = new com.example.dnm.resp.JsonResult();
		result.setData(map);

		return result;

	}

	/**
	 * 获取成功状态的json Map
	 * 
	 * @param message
	 *            要返回的信息
	 * @return 符合javashop规范的json map: {"result":1,"message":""}
	 */
	public static com.example.dnm.resp.JsonResult getSuccessJson(String message) {

		com.example.dnm.resp.JsonResult result = new com.example.dnm.resp.JsonResult();
		result.setCode(0);
		result.setMessage(message);

		return result;
	}

	/**
	 * 获取成功状态的json Map
	 * 
	 * @param code
	 * @param message
	 *            要返回的信息
	 * @return 符合javashop规范的json map: {"result":1,"message":""}
	 */
	public static com.example.dnm.resp.JsonResult getSuccessJson(int code, String message) {

		com.example.dnm.resp.JsonResult result = new com.example.dnm.resp.JsonResult();
		result.setCode(code);
		result.setMessage(message);

		return result;
	}

	/**
	 * 获取成功状态的json Map
	 * 
	 * @param message
	 *            要返回的信息
	 * @param o
	 *            返回的数据
	 * @return 符合javashop规范的json map: {"result":1,"message":""}
	 */
	public static com.example.dnm.resp.JsonResult getSuccessJson(String message, Object o) {
		com.example.dnm.resp.JsonResult result = new com.example.dnm.resp.JsonResult();
		result.setCode(0);
		result.setMessage(message);
		result.setData(o);
		return result;
	}

	/**
	 * 获取成功状态的json Map
	 * 
	 * @param code
	 * @param message
	 *            要返回的信息
	 * @param o
	 *            返回的数据
	 * @return 符合javashop规范的json map: {"result":1,"message":""}
	 */
	public static com.example.dnm.resp.JsonResult getSuccessJson(int code, String message, Object o) {
		com.example.dnm.resp.JsonResult result = new com.example.dnm.resp.JsonResult();
		result.setCode(code);
		result.setMessage(message);
		result.setData(o);
		return result;
	}

	/**
	 * 获取失败状态的json Map
	 * 
	 * @param message
	 *            要返回的信息
	 * @return 符合javashop规范的json map: {"result":0,"message":""}
	 */
	public static com.example.dnm.resp.JsonResult getErrorJson(String message) {

		com.example.dnm.resp.JsonResult result = new com.example.dnm.resp.JsonResult();
		result.setCode(1);
		result.setMessage(message);

		return result;

	}

	/**
	 * 获取失败状态的json Map
	 * 
	 * @param code
	 * @param message
	 *            要返回的信息
	 * @return 符合javashop规范的json map: {"result":0,"message":""}
	 */

	public static com.example.dnm.resp.JsonResult getErrorJson(int code, String message) {

		com.example.dnm.resp.JsonResult result = new com.example.dnm.resp.JsonResult();
		result.setCode(code);
		result.setMessage(message);

		return result;

	}

	/**
	 * 失败
	 * 
	 * @param resultCode
	 * @return
	 */
//	public static JsonResult getErrorJson(ResultCode resultCode) {
//		JsonResult result = new JsonResult();
//		result.setCode(resultCode.getCode());
//		result.setMessage(resultCode.getMessage());
//		return result;
//	}
}
